The present invention relates to process controllers. More specifically, the present invention relates to autoconfiguring graphic interfaces for remotely operable controllers.
Controllers have been used to control industrial processes for many years. A typical controller might maintain a process at a predetermined set point, or control a sequence of events at precisely timed intervals. The control system would have sensors to monitor the process and actuators or control elements to effect necessary changes in the process. Over the years, controllers have evolved to be able to control more complex processes, more precisely. Controllers have been developed which can be reconfigured to control different processes. Thus, the same controller may be reused or reassigned to a new process. Also, controllers have been developed which can be configured and operated remotely.
Many controllers have database elements which store values which reflect the status of a process. These values can be used to display graphic screens representing the process on, for instance, a personal computer. Thus, an operator could view the status of a remote process and even effect changes in the process, through a graphic interface on a remote computer.
One problem, however, is that the interface device needs to know how to interact with the controller in order to properly display and update a graphic interface. Thus, whenever a controller is reconfigured to control a different combination of control loops, any interface devices need to be reprogrammed according to the new configuration to function properly with the controller. In other words, the interface device needs to know what types of control loops a particular controller is controlling, and where in the controller""s memory to find the memory elements relevant to each control loop. Whenever a controller was reconfigured, any interface devices with the ability to access the controller needed to be updated as well.
For example, a controller may be configured to control three loops. The first loop may control the temperature of a boiler. The second loop may control the flow of water through a valve, and the third loop may control the timing of a sequence of actions in a machine. Certain information is associated with each loop, and is unique for the type of loop. That information is stored in the controller""s memory, and may be accessed by remote devices in order to determine the status of the process, or change the process. For instance, for the boiler loop, the controller would store variables representing the current temperature, the temperature set point, the power presently being delivered to the heating element, etc. For the flow control loop, the controller would store variables representing the valve position, the actual flow rate of water, the flow rate set point, etc.
In order for an interface device to present a graphic interface representing the three configured control loops, the interface device needs to communicate with the controller, and know the location within the controller""s memory where information associated with each loop is stored. With prior art controllers, the interface device would have to be programmed to access the controller in its present configuration. Once the controller is reconfigured to control a different combination of control loops, any interface devices which access the controller also need to be reprogrammed to reflect the new configuration. Otherwise, the interface devices would not know where in the controller""s memory to locate the information associated with the new combination of control loops.
This situation becomes troublesome when an interface device can access many controllers, and a particular controller may be accessed by many interface devices. The cost and time associated with programming each computer to access each controller grows exponentially with the size of the network. Furthermore, each time a controller""s configuration is changed, each interface device which can access the controller would need to be reprogrammed according to the controller""s new configuration. Manually programming the interface device to match the configuration of a particular controller can be timely, and introduces the possibility of human error. In addition, with controllers which are accessible via the Internet, the class of interface devices which may access the controller becomes very large, potentially including any device capable of accessing the Internet. Thus, there is a need for a controller which alleviates the burden of programming interface devices to interact with a particular controller""s particular configuration. Such a controller would allow any compatible interface device to access any controller with any configuration, and program itself to interact with the controller dynamically.
The present invention solves the above problem by providing a controller which allows interface devices to autoconfigure a graphic interface. Thus, any interface device which can access a controller according to the present invention will be able to automatically update itself to produce graphic interfaces representing the number and types of control loops configured in the controller, and to access the appropriate memory elements within the controller to update the graphic interface to reflect the status of the process.
A controller is provided which allows an interface device to autoconfigure a graphic interface to reflect the configuration of the controller. The controller has a static memory and a dynamic memory. The static memory contains predefined memory elements which contain information on the number of control loops being controlled, the type of each control loop, and the location within the dynamic memory of a data grouping associated with each control loop. An interface device accesses the static memory to obtain the information necessary to display a graphic interface representative of the controller configuration, and to access appropriate data groups within the dynamic memory to update the graphic interface to reflect the status of the process.